TSpinDateEdit  and  TDBSpinDateEdit
Version 1.4
   
(c) copyright 1997 by W.Braun. All rights reserved. 

Delphi VCL-Componenten



   

Liebe Entwickler und Anwender ,

mit diesen Komponenten knnen Sie alle Datumsein-/ausgabefelder in Ihrer
Applikation abdecken und erreichen so ein  einheitlich formatiertes 
Erscheinungsbild Ihrer Anwendung.

Die KOmponente untersttzt internationale und Benutzer  
Einstelllungen der Windowssystem Datumsparameter. 

Die manuelle Eingabe des Datums ist sehr ausgefeilt und fngt automatisch
alle Falscheingaben ab.
Bei Bedarf knnen Sie einen Kalender hinzufgen, der dann einfach per 
Doppelklick oder durch Klick auf das Symbol angezeigt wird. 
Zustzlich besitzen diese Komponenten die Mglichkeit mit +/- oder bei
eingeschaltetem Spinsymbol per Klick auf das jeweilige Symbol das Datum
um eine freidefinierbare Anzahl der Tage zu erhhen/vermindern.

Ich hoffe diese Komponenten helfen euch bei der Arbeit und machen diese
etwas leichter.


Inhalt

  
   1. Installation
   2. Eigenschaften
   3. Funktiosbeschreibung
   4. Registrierung
   5. Neu 
   6. Glossar	 


>>1. Installation 

Bitte benutzen Sie fr die 16-Bit Version die Datei "Date_16.ZIP" 
und fr die 32-Bit Version die Datei "Date_32.ZIP".

1. Kopieren Sie bitte die Dateien  DateEd.DCU, DateEd.DCR, DateEd.RES 
   und DateEdC.DFM  in ein beliebiges von Ihnen bevorzugtes 
   Verzeichniss, z.B. C:\DELPHI\Z_COMP
2. Whlen Sie im Delphi-Men Optionen | Komponenten installieren
3. Klicken Sie auf Hinzufgen
4. Geben Sie jetzt das Verzeichniss und DateED.DCU ein, 
   z.B. C:\DELPHI\Z_COMP\DateED.DCU 
5. Klicken Sie jetzt OK
6. Nochmal OK

Nach kompilierung der VCL durch Delphi erscheint jetzt in Ihrer 
Komponentenleiste eine zustzliche Leiste 'WB', hier finden Sie
die neuen Komponenten.

Jetzt mssen Sie nur noch diese Komponenten anklicken und danach auf 
Ihr Formular an der gewnschten Position setzen.

>>2. Eigenschaften ( Properties)

Folgende Eigenschaften gelten fr beide Komponenten

TSpinDateEdit, TDBSpinDateEdit


Properties :
      property Alignment: default taLeftJustify;
      property Autosize;  
      property +CalendarProperties, Calendarpopup properties :
                Enabled     : boolean, Calendarbutton/Calendarpopup 
                              on/off , default on
                AutoStart   : boolean, pops the calendar OnEnter,
			      default False 
                Color       : TColor, Calendarpopup color, default clBackground
                HelpContext : THelpContext, HelpContext for Calendarpopup
                Position    : Position of Calendarform, default posAbove
                              [posAbove,posBelow,posLeft,posRight,posOnTop]
                StartOfWeek : day of week the calendargrid starts on
                              default daySU  
                	      [daySu,dayMo,dayTu,dayWe,dayTh,dayFr,daySa] 
                WeekOfYear  : boolean, calendarweek of year on/off
                WeekOfYearColor : TColor, color for calendarweek, default clBlack;
      
      property Century : boolean, Century on/off default True
      property Color;
      property Ctl3D;
      property DateValue : string, Date in ShortDateFormat 
      property DragCursor;
      property DragMode;
      property Enabled;
      property Font ;
      property IncrementDate: Increment for Spin or +/-, default iOneDay
               [iOneDay, iTwoDays, iThreeDays, iOneWeek, iTwoWeek,
                iOneMonth,iQuarterYear,iHalfYear,iOneYear]                          
      property Info : InfoMessageBox about this component
      property ParentCtl3D;
      property ParentFont;
      property ParentShowHint;
      property PopupMenu;
      property ReadOnly;
      property ShowHint;
      property Spin :  boolean, Spinbuttons on/off, default off
      property TabOrder;
      property TabStop;
      property Value: TDateTime, Date in TDateEditFormat
      property Visible;
      property OnChange;
      property OnClick;
      property OnDblClick;
      property OnDragDrop;
      property OnDragOver;
      property OnEndDrag;
      property OnEnter;
      property OnExit;
      property OnKeyDown;
      property OnKeyPress;
      property OnKeyUp;
      property OnMouseDown;
      property OnMouseMove;
      property OnMouseUp;

Additional  the TDBSpinDateEdit have follows properties

DataField	DateField , Datatype ftDate, ftDateTime
DataSource	DataSource for Table or Query
     	

>>3. Beschreibung

TSpinDateEdit dient der Vereinfachung der Eingaben von Datum. 
Die standardmig mitgelieferten Werkzeuge von Borland sind nur sehr 
eingeschrnk zu gebrauchen ( s. TMaskEdit,TDBEdit).

Die Eingabe des Datums erfolgt im ShortDateFormat ( z.B. 10.01.1997 ), 
wobei die Datumstrennungszeichen automatisch bersprungen  werden. 
Der Anwender kann das Datum auf folgende Arten verndern :
 1. Durch manuelle Eingabe von Datumszahlen. Die Komponente fngt automatisch
    alle Falscheingaben ( wie 13 Monat , 31.11 , 29.2.97, usw )  ab. 
 2. Mit +/- oder dem jeweiligen Symbol ( Up/Down)  des SpinButtons kann 
    das Datum um die vom Entwickler festgelegte Anzahl der Tage 
    erhht/vermindert werden.
 3. Mit dem Klick auf Kalenderbutton oder mit dem DoppelKlick auf das 
    Editierfeld kann ein eingebauter Kalender aufgerufen werden und dort 
    das gewnschte Datum ausgewhlt werden.

Der Entwickler setzt das gewnschte Datum ber die zwei Eigenschaften : 
 1. DateValue : Hier kann das Datum wie ein normaler Text im ShortDateFormat 
    eingetragen werden.
    Die Eigenschaft Value wird automatisch gesetzt. 
    Bei Falscheingabe erscheint eine Fehlermeldung.
    Diese Eigenschaft ist zum Setzen des Datums in der Entwicklungsumgebung
    gedacht.
    Whrend der Programmausfhrung sollte besser die Value-Eigenschaft benutzt
    werden, da bei Strings mit falschem Datum eine Fehlermeldung angezeigt wird
    (wenn die Exception nicht von Ihnen abgefangen wird).
    Wenn diese Fehlermeldungen Sie genauso stren wie mich ( in fast allen 
    Programmen mit Datumseingabe gehrt diese vermutlich zur hufigsten 
    Fehlermeldung berhaupt ) benutzen Sie besser die Value-Eigenschaft,
    da diese mit Delphidatumsfunktionen direkt arbeitet ( z.B. Now) und so die 
    Umwandlung von Strings zu Datum nicht mehr notwendig ist.
    Benutzen Sie DateValue in Ihren Programmen als die Stringausgabe des Datum 
    (z.B. Label1.Caption:=SpinDateEdit1.DateValue) und Value als Schnittstelle
    zu Delphidatumsfunktionen (z.B. SinDateEdit1.Value:=Now). 
 2. Value : ist vom Typ TDateTime und stellt das Datum als eine Zahl 
    vom Typ double dar.
    Die Eigenschaft DateValue wird automatisch gesetzt. 
    Diese Eigenschaft kann direkt mit den Datumssystemroutinen gesetzt 
    bzw. von ihnen gelesen werden( z.B. Now, DateToStr,usw. ). 
    Sie knnen Value auch in der Entwicklungsumgebung setzen, beachten Sie 
    aber bitte das unter Delphi 2.x Value:=0 das Datum 12/30/1899 bedeutet.  
	
    Da der dezimale Bereich von Delphi fr den Zeitanteil benutzt wird, 
    kann man den hier vernachlssigen. Sie knnen den aber selbstverstndlich
    auch mitfhren und verwenden.
     
    Die Grenze von Value ist so festgelegt : 
    const      
    {$IFDEF WIN32}      
    DateDelphi   =-657434; { Date=01/01/0100 Min} 
    DateDelphiMax=2958465; { Date=12/31/9999}
    {$ELSE}
    DateDelphi   =1;       { Date=01/01/0001 Min} 
    DateDelphiMax=3652059; { Date=12/31/9999}
    {$ENDIF}
    Die Grenzen sind von den Delphientwickler so festgelegt worden 
    ( Datumskonventionen von Delphi ), auer die DateDelphi-Konstante 
    fer Delphi 2.x wurde von mir auf das Jahr 100 erhht, da die 
    Datumssystemroutinen mit kleineren Werten nicht korrekt arbeiten.
         
Die Eigenschaft Century  bestimmt ob die Jahrhunderte, unabhnig von der
Systemeinstellung, angezeigt/bearbeitet werden knnen. Dadurch knnen die 
Masken unabhngig von den individuellen Windowssystemeinstellungen des 
Anwenders gestaltet werden. Der Fehler der Datumssystemroutinen bei 
zweistelliger Jahresangabe automatisch das aktuelle Jahrhundert 
hinzuzufgen wird abgefangen (s.a. DateValue).

Increment ist die Anzahl der Tage um die das Datum vom Anwender durch Drcken
von +/- oder bei eingeschaltenem Spin durch Klicken auf das Up/Down-Symbol
erhhen/vermindern kann.

Die Eigenschaft Spin macht dem Anwender die Incrementfhigkeit sichtbar.
Die Funktion ist die gleiche wie bei +/-.


Calendar ist eine nichtmodale Form mit einer Kalendertabelle. 

CalendarProperties :

 -Enabled     : bestimmt ob der Kalender verfgbar ist.
  Bei True erscheint das Symbol, der Anwender kann duch das Anklicken
  des Symbols oder durch Doppelklick auf das Editierfeld den Kalender
  aufrufen.
 -AutoStart   : startet den Kalender bei OnEnter
 -Color       : Farbe des Calenderfensters 
 -Helpcontext : Helpcontext fr Calendarfenster
 -Position    : Position des Calendarfensters auf dem Bildschrirm 
		zum Eingabefeld  
 -StartOfWeek : Erster Tag im Kalendergitter
 -WeekOfYear  : Kalenderwoche im Calendar
 -WeekOfYearColor : Farbe fr Kalenderwoche

Beschreibung des Kalenderfensters:

-Kalendergitter
- Anzeige des aktuell Monats und Jahres. Durch Doppelclick automatischer
  Sprung zum aktuellen Datum
- Buttons fr Monat vor/zurck
- Buttons fr Jahr  vor/zurck
- Tabulator/Shift-Tabulator bedeuten Monat vor/zurck
- +/- haben die gleiche Funktion wie beim Eingabefeld
- Fehlerbeseitigung bei Datumsgrenzberschreitungen

Calendar wird als NichtModal-Form aufgerufen und wird geschlossen durch:
-drcken der Return-Taste, Datum wird in das Eingabefeld bernommen
-Doppelclick auf den ausgewhlten Tag im Kalender, Datum wird in das 
 Eingabefeld bernommen  
-durch Drcken der ESCAPE-Taste oder durch Anklicken auerhalb des
 Kalendars, Ergebnis wird nicht bernommen.

Die zustzlichen Eigenschaften der TDBSpinDateEdit-Komponenten dienen der 
direkten Datenbankanbindung und knnen zur Anzeige bzw. Manipulation der 
Daten der verbundenen Felder einer Tabelle oder Anfrage benutzt werden. 

Andere Eigenschaften sind ohne nderungen aus der TCustomerEdit-Klasse 
bernommen worden.

>>4. Registrierung

Die Demo-Version beinhaltet alle Funktionen der Vollversion, nur jeden
8 eines Monats rufen die Komponenten beim Erstellen ein Meldungsfenster auf
wenn die Appplikation auerhalb der Entwicklungsumgebung gestartet wird.    

Registration

Der Preis fr diese Komponenten ist 
 - $15.00 (US) ohne SourceCode 
 - $30.00 (US) mit SourceCode ( >2500 Zeilen). 

Bestellen knnen Sie wie folgt :

1. CompuServe's Online Registration :  GO SWREG
   TSpinDateEdit : -File-ID 14245  ohne Source
                   -File-ID 14900  mit  Source
   TSpinDblEdit :  -File-ID 12832  ohne Source
                   -File-ID 14901  mit  Source



2. Order by sending me an e-Mail.
3. Fill out and send the order form "order.txt" 

Wenn es keine Mglichkeit gibt die registrierte Version auf elektronischem 
Wege zu verschicken, addieren Sie bitte 2.00$ fr den Versand innerhalb und
3.00$ fr den Versand auerhalb Deutschlands hinzu.

Registrierte Benutzer bekommen von mir einige Updates im Laufe eines 
Kalenderjahres. 
Zustzlich ist in der registrierten Version die in 
TSpinDateEdit integrierter Kalender als eigenstndige Komponente 
enthalten.




>>5. Neu

Version 1.4

-Calendar AutoStart : Enter with VK_TAB now fixed with Timer
		      ( no jump month before open Calendar) 	
-AutoSelect
-ParentColor

New in Version 1.3 :

Thanks to Markus Schwaiger for suggestion of calendarweek

     -DateedC Unit not necessary

     -Calendarproperties
        property Enabled
        property AutoStart
        property Color                  New in 1.3
        property HelpContext
        property Position
        property StartOfWeek
        property WeekOfYear             New in 1.3
        property WeekOfYearColor        New in 1.3

      not available : property Calendar          New CalendarProperties.Enabled
                      property AutoCalendar      New CalendarProperties.AutoStart
                      property CalHelpContext    New CalendarProperties.HelpContext
                      property CalPosition       New CalendarProperties.Position
                      property CalStartOfWeek    New CalendarProperties.StartOfWeek

                      property Increment         New IncrementDate
     Bug fixed : 
       -AutoCalendar not jumps to the next month into calendargrid 
       -DB OnEnter,OnExit not longer change Datalink.State to modified
        without Edit.Change
       -SpinDateEdit.Height the same like TEdit.Height 


New in version 1.2 :

- much better controls of Spacebar
- bug fixes  


New in version 1.1:

(thanks to Richard Haven for his suggestion)

- Increment property not longer supported, please use IncrementDate
- IncrementDate enumeration property 
  (iOneDay, iTwoDays, iThreeDays, iOneWeek, iTwoWeek, iOneMonth,
  iQuarterYear,iHalfYear,iOneYear)
- AutoCalendar, pops the calendar OnEnter
- CalStartOfWeek, day of the week the calendar starts on
  (daySu,dayMo,dayTu,dayWe,dayTh,dayFr,daySa) 
- Space bar allow quick enter current date ( or part of date)
  Puts in the actual and follows parts (cursorposition) of datevalue the 
  respective part of current date.
  (e.g. datemask is mm/dd/yy. If cursor on month part spacebar
   fill mm/dd/yy with current date, if cursor on day part spacebar
   fill dd/yy, if ...)


- Clear now working correctly
- VK_DELETE,VK_BACK,WM_Cut,WM_Past now working correctly if
  the complete text selected




>>6. Glossar

Ich hoffe, Sie kommen mit dieser Beschreibung zurecht.
Wenn Sie Fragen oder Anregungen haben schicken Sie mir ein paar Zeilen 
per eMail oder Fax.
Ich bin fr jeden guten Vorschlag dankbar.

MfG 

Ihr Willi Braun


eMail : 106216.1307@compuserve.com
Fax  :  049 0621 6296754



>>7. Order/Register form, use only for registration without 
     Compuserve Shareware Register Forum ( GO SWREG )



   ORDER FORM
   

   TSpinDblEdit/TDBSpinDblEdit    
   TSpinDateEdit/TDBSpinDateEdit 


   Name:   _______________________

   Address:_______________________

           _______________________

           _______________________

           _______________________



   Product:

   ____  16&32 Bit TSpinDateEdit\TDBSpinDateEdit        $15 US DOLLARS
   ____  16&32 Bit TSpinDateEdit\TDBSpinDateEdit Source $30 US DOLLARS
   ____  16&32 Bit TSpinDblEdit\TDBSpinDblEdit          $15 US DOLLARS
   ____  16&32 Bit TSpinDblEdit\TDBSpinDblEdit   Source $30 US DOLLARS


                 Check or money order only.
		 PLEASE MAKE PAYABLE TO "W. BRAUN".

   Shipping:

           ____  3.5" Floppy Disk ( Add $2 postage Germany, other $3) 

           ____  eMail : ____________________________


   Mail Address :
      W. Braun
      Bruehlstr. 40
      67069 Ludwigshafen
      Germany
